package Day08;

import org.w3c.dom.ls.LSOutput;

public class Demo01 {
    public static void main(String[] args) {
        class xxx {//局部内部类,存在于构造方法中的类

            void abc() {
                System.out.println("你是大头猪");
            }
        }
        xxx x = new xxx();
        x.abc();
        //内部类
        //调用成员内部类，得创建成员才行
        Person p = new Person();
//        p.setAge(10);
//        Person.Student s = p.new Student();
//        s.say();//你是猪
    }
}
  class Person {
        private String name;
        private int age;

        public Person() {
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }

        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }

      public void say() {
            System.out.println("憨憨");
        }//匿名内部类

      class Student {//成员内部类
            int age = 200;

            void say() {
                //System.out.println(name + "," + age);//成员内部类可以调用外面一个类的所有属性，包括静态私有，外部类不创建对象，内部类是使用不了的
                System.out.println("你是猪");
                System.out.println(age);//这是打印本类的
                System.out.println(Person.this.age);//这是打印外部类的
            }
        }
}
